package com.enjoyor.soa.traffic.restt.tpcms.dubbo;

import com.enjoyor.soa.traffic.api.dto.tpcms.PassApplyDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

public interface IPassApplyConsumeService {

    /**
     * 新增申请单
     * 
     * @param passApplyDto
     *            申请单实体
     * @param userName
     *            操作用户
     * @return passApplyId 申请单Id
     */
    public ResultPojo insertPassApply(PassApplyDto passApplyDto, String userName);

    /**
     * 新增并提交申请单
     * 
     * @param passApplyDto
     *            申请单实体
     * @param userName
     *            操作用户
     * @return passApplyId 申请单Id
     */
    public ResultPojo insertSubmitPassApply(PassApplyDto passApplyDto, String userName);

    /**
     * 删除申请单
     * 
     * @param passApplyId
     *            申请单编号
     * @param userName
     *            操作用户
     */
    public ResultPojo deletePassApply(String passApplyId, String userName);

    /**
     * 修改申请单
     * 
     * @param passApplyDto
     *            申请单实体
     * @param userName
     *            操作用户
     */
    public ResultPojo editPassApply(PassApplyDto passApplyDto, String userName);

    /**
     * 修改并提交申请单
     * 
     * @param passApplyDto
     *            申请单实体
     * @param userName
     *            操作用户
     */
    public ResultPojo editSubmitPassApply(PassApplyDto passApplyDto, String userName);

    /**
     * 申请单提交审核
     * 
     * @param passApplyId
     *            申请编号
     * @param userName
     *            操作用户
     */
    public ResultPojo submitPassApply(String passApplyId, String userName);

    /**
     * 查询申请单列表信息List
     * 
     * @param passApplyId
     *            申请编号（模糊查询）
     * @param applyPeople
     *            申请人（模糊查询）
     * @param applyDept
     *            所属单位（模糊查询）
     * @param applyTypeId
     *            申请种类
     * @param applyStartTime
     *            申请开始时间(yyyy-mm-dd hh24:mi:ss)
     * @param applyEndTime
     *            申请结束时间(yyyy-mm-dd hh24:mi:ss)
     * @param applyStatusId
     *            申请状态编号
     * @return
     */
    public ResultPojo getPassApplyList(String passApplyId, String applyPeople, String applyDept, String applyTypeId,
            String applyStartTime, String applyEndTime, String applyStatusId);

    /**
     * 查询申请单分页信息
     * 
     * @param page
     *            分页参数
     * @return
     */
    @SuppressWarnings("rawtypes")
    public ResultPojo getPassApplyPage(Page page);

}
